fun main() {
     /*
   基本类
   class 类名 {
     var xx 
     fun 方法名() {
     }
   }
   主构造函数 
   显式
   class 类名 constructor(参数列表) {
      init {
      }
      fun 方法名() {
      }
   }
   隐式
   class 类名(参数列表) {}

   次构造函数 (无主构造函数)
   class 类名 {
     // 次构造函数
     constructor() {
     }
   }

   次构造函数 (有主构造函数)
   class 类名(age: Int) {
     var name: String = ''
     // 次构造
     constructor(name: String, age: Int): this(委托的参数 age) {
       this.name = name
     }
   }
    val p = leiming() 
  */ 

    // 测试主构造函数和次构造函数
    val a = Person1("张三", 25)
    a.intro()
    val b = Person2("李四", 30)
    b.intro()
}
//次构造函数(有主构造函数)
class Person1(var age: Int) {
    var name:String = ""
    constructor(name:String,age:Int):this(age){
        this.name = name
    }
    fun intro() {
        println("我的名字是$name,我的年龄是$age")
    }
}


// 次构造函数(无主构造函数)
class Person2 {
    var name:String = ""
    var age:Int = 0
    constructor(name: String, age: Int) {
        this.age = age
        this.name = name
     }
     fun intro() {
        println("我的名字是$name,我的年龄是$age")
     }

}